home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / program / 522 / okami12 / doc / kompat.doc < prev    next >
Encoding:
Text File  |  1991-04-17  |  5.6 KB  |  123 lines

  1.  
  2.     ===============================================
  3.  
  4. @(#)      OKAMI SHELL VERSION 1.2 - KOMPATIBILITÄT
  5.  
  6.     ===============================================
  7.             Stand: 27.12.90
  8.  
  9.  
  10.     BITTE ERST DIE DATEIN README UND OKAMI.DOC LESEN!
  11.  
  12.  
  13. Diese Datei vermerkt alle Änderungen der Shell, die zu Inkompatibilität
  14. zu älteren Versionen führen. Zu jeder Änderung ist ein Datum angegeben. Es
  15. bedeutet, daß alle nach diesem Datum erstellten Versionen der Shell in dem
  16. betreffenden Punkt zu allen vor diesem Datum erstellten Versionen inkompatibel
  17. ist bzw. sich anders verhält, was Anpassungen an Shellscripts o.ä. notwendig
  18. macht. Das Erstellungsdatum einer Shell kann durch Eingabe von "ver -c" er-
  19. mittelt werden.
  20.  
  21.  
  22.             ========
  23. @(#)            15.11.90
  24.             ========
  25.  
  26. Das Kommando grep hat bisher nur feste Strings ohne Rücksicht auf Wildcards
  27. gesucht und entsprach daher dem Unix-fgrep. Ab jetzt gibt es fgrep für die
  28. Suche nach festen Strings und grep, das erweiterte Wildcards berücksichtigt.
  29. Shellscripts, die grep zum Suchen von Strings, die Wildcards (Sterne, Frage-
  30. zeichen und eckige Klammern) beinhalten, benutzen, sollten statt grep fgrep
  31. benutzen. Die notwendigen Änderungen beschränken sich also auf das Hinzufügen
  32. des "f".
  33.  
  34.  
  35.             ========
  36. @(#)            23.11.90
  37.             ========
  38.  
  39. Ab diesem Tag betrachtet die Shell das doppelte Anführungszeichen (") als
  40. Gruppierungssymbol, was sie in den vorigen Versionen nicht getan hat. Das
  41. hat folgende Konsequenzen:
  42.  
  43. * Das doppelte Anführungszeichen muß, wenn es ausgegeben werden soll, mit
  44.   einem davorstehenden Dach gequotet werden. Beispiel: das Kommando
  45.       echo 3.5"-Diskette
  46.   erzeugte in früheren Versionen die Ausgabe 3.5"-Diskette. In der neueren
  47.   Version muß es heißen:
  48.       echo 3.5^"-Diskette
  49.   ABHILFE: vor jedes Anführungszeichen ein Dach setzen.
  50.  
  51. * Wenn mit dem Fluchtsymbol (^) Steuerzeichen in eine Eingabezeile aufgenommen
  52.   werden, müssen diese ebenfalls in doppelten Anführungszeichen stehen, da sie
  53.   sonst als Wort-Trennzeichen gelten. Beispiel: in
  54.       echo hallo ^n wie gehts
  55.   ist das Zeilenend-Zeichen (^n) ein Worttrenner und wird daher nicht wie in
  56.   den älteren Versionen als Zeilenvorschub ausgegeben.
  57.   ABHILFE: solche Fälle in doppelte Anführungszeichen setzen:
  58.       echo "hallo ^n wie gehts"
  59.  
  60. * Mehrere hintereinanderstehende Whitespace-Zeichen werden zu einem Leerzeichen
  61.   zusammengefaßt, wenn sie nicht in doppelten Anführungszeichen stehen. Die
  62.   älteren Versionen der Shell taten das nicht. Beispiel:
  63.       echo a       b          c
  64.   erzeugte in früheren Versionen die Ausgabe
  65.       a       b          c
  66.   , in der aktuellen Version jedoch
  67.       a b c
  68.   . Das gilt auch für die Deklaration von Shellfunktionen.
  69.   ABHILFE: auch hier in doppelte Anführungszeichen setzen:
  70.       echo "a        b          c"
  71.  
  72.  
  73.  
  74.  
  75.             ========
  76. @(#)            27.12.90
  77.             ========
  78.  
  79. Die Umleitung der Ein- und Ausgabe erfolgt ab jetzt vollständig auf Gemdos-
  80. Ebene mit Hilfe der Funktion Fforce. In allen älteren Versionen wurde die
  81. Umleitung nur von der Shell selber durchgeführt.
  82. Der Vorteil der neuen Lösung ist
  83. 1) daß sich jetzt alle externen Programme umleiten lassen, die ihre Ein- und
  84.    Ausgabe über Gemdos abwickeln, und
  85. 2) daß sich auch externe Programme, die in Shellscripts stehen, zusammen mit
  86.    den Shellscripts umleiten lassen, was vorher nicht möglich war.
  87. Bedauerlicherweise ergeben sich dadurch auch zwei Nachteile:
  88.  
  89. *) Wenn ein Kommando eine Tastatureingabe entgegennimmt, wird das Echo der
  90.    Tasten zur Standardausgabe geschrieben. Wenn diese dabei umgeleitet wird,
  91.    kommt das Tastenecho nicht auf den Bildschirm, sondern mit in die Umlei-
  92.    tung. Beispiel: "cat >datei.txt" diente vorher dazu, die Tastatureingabe
  93.    in die Datei datei.txt umzuleiten. Jetzt kommt allerdings auch das Tasten-
  94.    echo in diese Datei.
  95.    ABHILFE: Keine, dieses Problem ist bis jetzt nicht lösbar.
  96.  
  97. *) Das Betriebssystem stellt keine Standard-Fehlerausgabe zur Verfügung, da es
  98.    die reichlich starre Organisation der "Standard-File-Handles" von MS-DOS
  99.    übernommen hat. Es gibt also eine Standard-Eingabe, eine Standard-Ausgabe,
  100.    eine Standard-serielle Schnittstelle usw. Unter Unix wird File-Deskriptor
  101.    Nr. 2 für Fehlerausgaben benutzt, diese werden mit "2>" umgeleitet. Um
  102.    dazu konform zu bleiben, benutzt die Okami-Shell ebenfalls File-Deskriptor
  103.    Nr. 2 für die Fehlerausgaben. Dies ist aber normalerweise die serielle
  104.    Schnittstelle. Die Okami-Shell biegt also zu Beginn alle Ausgaben, die auf
  105.    die Standard-serielle Schnittstelle gehen sollten, auf die Standard-Ausgabe
  106.    um. Das ist nicht allzu schlimm, da Programme, die diese Schnittstelle be-
  107.    nutzen, das sowieso über die nicht umleitbaren Xbios-Funktionen tun sollten. 
  108.    Es ist aber aus einem anderen Grund schlimm: die serielle Schnittstelle
  109.    wurde bisher als NULL-Gerät benutzt. (Ein richtiges Null-Gerät hat man von
  110.    MS-DOS natürlich nicht übernommen.) Diese Möglichkeit fällt jetzt natürlich
  111.    weg, denn "rm datei 2>NULL:", womit die Fehlerausgabe von rm zum Null-Gerät
  112.    umgeleitet werden soll, schickt bei NULL=AUX: die Fehlerausgabe über die
  113.    serielle Schnittstelle (die auf den Bildschirm umgebogen wurde) genau
  114.    dahin, wo sie nicht hinsoll, nämlich auf den Bildschirm.
  115.    Um dieses Problem zu umgehen, lautet die Defaulteinstellung von NULL ab
  116.    jetzt PRN:, es wird also die paralelle Schnittstelle benutzt. Wer hier
  117.    einen Drucker angeschlossen hat, dem bringt das natürlich nicht allzu viel.
  118.    ABHILFE: wer keinen Drucker hat, kann NULL auf PRN: stehen lassen.
  119.    Wer wohl einen Drucker hat, sollte NULL auf eine Datei z.B. auf der Ram-
  120.    disk einstellen, z.B. durch die Zeile
  121.        NULL=$PIPDIR/nullfile
  122.    im Profile.
  123.